import { Suspense } from 'react';
import { Spin } from 'antd';
import type { LazyExoticComponent, ReactNode } from 'react';

/**
 * @description 路由懒加载
 * @param {Element} Comp 需要访问的组件
 * @returns element
 */
const lazyLoad = (Comp: LazyExoticComponent<any>): ReactNode => {
  return (
    Comp && (
      <Suspense
        fallback={
          <Spin
            size="large"
            style={{
              display: 'flex',
              alignItems: 'center',
              justifyContent: 'center',
              height: '100%'
            }}
          />
        }
      >
        <Comp />
      </Suspense>
    )
  );
};

export default lazyLoad;
